Raspberry PI - Předpověď počasí
Autor: MarMarPřidáno: 12.10.2013 14:44
Zobrazení: 821x krát
Tagy: Elektrotechnika - Programování - Weather - Raspberry PI - PWM - Servo - Python
Předpověď počasí s Raspberry PI pomocí PWM a serva
!!!Pro chod tohoto programu potřebujete mít nainstalovaný na malině Python a GPIO pro Python!!!
Jak to funguje:
Pomocí urllib knihovny si stáhneme do proměnné HTML stránku s předpovědí počasí. Z řetězce pomocí index získáme pozici hledaného řetězce s počasím. Postupně parsujeme řetězec, dokud nedostaneme název počasí. V cyklu projdeme jednotlive typy počasí a zkontrolujeme, zda sedí s našim vyparsovaným. Pokud ano, zapamatujeme si index, pomocí funkce GetDuty si necháme vrátit duty pro PWMko a poté ho aplikujeme. Každou hodinu zkontrolujeme znova.
Zdroják:
#! /usr/bin/python
import sys
import time
import urllib
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
GPIO.setup(12, GPIO.OUT)
delay = 3600;
dc = 0;
frek = 100;
CNT = 0;
text = "";
text2 = "";
text3 = "";
c = 0;
pocasi = ["jasno","skorojasno","polojasno","oblacno","zatazeno","obcasny-dest","prehanky-dest","prehanky-bourky"]
PWmko = GPIO.PWM(12,frek);
def GetDuty(int):
return {
1 : 6,
2 : 9,
3 : 11,
4 : 13,
5 : 15,
6 : 18,
7 : 19,
8 : 21,
}[int]
while (c<1):
#STAZENI STRANKY
html = urllib.urlopen("http://www.in-pocasi.cz/mesta/cz/moravskoslezsky/ostrava-295/").read();
P = html.index(text);
P = html.index("tra",P+1);
P = html.index(text2,P+1);
P = html.index(text2,P+1);
P2 = html.index(text3,P);
page = html[P+14:P2-2];
page = page[7:100];
P = page.index("/");
P = page.index("/",P+2);
page = page[P+1:P+100];
P = page.index(".");
page = page[0:P];
CNT = 0
for I in pocasi:
if(I==page):
dc = GetDuty(CNT+1);
PWmko.start(dc);
time.sleep(1.1);
PWmko.stop();
CNT = CNT+1
time.sleep(delay)
Komentáře: